<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<title>DRV_SPI_WriteTransferAdd Function</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="generator" content="Doc-O-Matic" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="STYLESHEET" href="default.css" type="text/css" />

<script type="text/javascript" src="scripts.js"></script>
</head>
<body class="Element700" onload="onBodyLoadEx('frames.html', 'topic', '00528.html');" onmousedown="onBodyMouseDown();">

<!-- Begin Popups -->

<!-- End Popups -->

<!-- Begin Page Header -->
<div class="Element710" id="areafixed">
<div class="Element94">
<a href="00007.html" target="topic">Driver Libraries Help</a> &gt; <a href="00137.html" target="topic">SPI Driver Library Help</a> &gt; <a href="00138.html" target="topic">Library Interface</a> &gt; c) Transfer Functions &gt; <a href="00528.html" target="topic">DRV_SPI_WriteTransferAdd Function</a></div>
<div class="Element92">
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td width="25%">
<div class="Element1">
MPLAB Harmony Core Help</div>
</td><td width="25%">
<div class="Element2">
<a href="contents.html" target="tocidx">Contents</a> | <a href="00007.html" target="topic">Home</a></div>
</td><td width="25%">
<div class="Element90">
<a href="00504.html" target="topic">Previous</a> | <a href="00138.html" target="topic">Up</a> | <a href="00526.html" target="topic">Next</a></div>
</td><td width="25%">
<div class="Element96">
<a href="mailto:docerrors@microchip.com&subject=MPLAB Harmony Documentation Feedback (Topic ID: DRV_SPI_WriteTransferAdd@DRV_HANDLE@void*@size_t@DRV_SPI_TRANSFER_HANDLE * const Topic Title: DRV_SPI_WriteTransferAdd Function)&body=Thank you for your feedback! Please include a description of your feedback, and indicate whether you are reporting an an error in the documentation or an enhancement.">Documentation Feedback</a><br> <a href="http://support.microchip.com" target="_blank">Microchip Support</a></div>
</td></tr></table><div class="Element5">
DRV_SPI_WriteTransferAdd Function</div>
</div>
</div>

<!-- End Page Header -->

<!-- Begin Client Area -->
<div class="Element720" id="areascroll">
<div class="Element721">

<!-- Begin Page Content -->
<a name="PageContent"></a><div class="Element58">
<a name="4465736372697074696F6E"></a><div class="Element11">
<div class="Element10">
<p class="Element10">
This function schedules a non-blocking write operation. The function returns with a valid transfer handle in the transferHandle argument if the request was scheduled successfully. The function adds the request to the instance specific software queue and returns immediately. While the request is in the queue, the application buffer is owned by the driver and should not be modified. This API will write txSize bytes of data and the dummy data received will be ignored.&nbsp;</p>
<p class="Element10">
The function returns <a href="00514.html" target="topic">DRV_SPI_TRANSFER_HANDLE_INVALID</a> in the transferHandle argument:</p>
<ul class="Element630">
<li class="Element600">if pTransmitData is NULL.</li>
<li class="Element600">if txSize is zero.</li>
<li class="Element600">if the transfer handle is NULL.</li>
<li class="Element600">if the queue size is full or queue depth is insufficient.</li>
<li class="Element600">if the driver handle is invalid.</li>
</ul><p class="Element10">
&nbsp;</p>
<p class="Element10">
If the requesting client registered an event callback with the driver, the driver will issue a DRV_SPI_TRANSFER_EVENT_COMPLETE event if the transfer was processed successfully or DRV_SPI_TRANSFER_EVENT_ERROR event if the transfer was not processed successfully.</p></div>
</div>
<a name="43"></a><div class="Element99">
C</div>
<div class="Element101"><div class="Element100"><pre class="Element100"><strong><span style="color: #000080">void</span></strong> <strong><span style="color: #000000">DRV_SPI_WriteTransferAdd</span></strong>(
    <strong><span style="color: #000080">const</span></strong> <a href="00257.html" target="topic">DRV_HANDLE</a> <strong><span style="color: #000000">handle</span></strong>, 
    <strong><span style="color: #000080">void</span></strong>* <strong><span style="color: #000000">pTransmitData</span></strong>, 
    size_t <strong><span style="color: #000000">txSize</span></strong>, 
    <a href="00513.html" target="topic">DRV_SPI_TRANSFER_HANDLE</a> * <strong><span style="color: #000080">const</span></strong> <strong><span style="color: #000000">transferHandle</span></strong>
);</pre></div></div>
<a name="507265636F6E646974696F6E73"></a><div class="Element14">
Preconditions</div>
<div class="Element11">
<div class="Element10">

<ul class="Element630">
<li class="Element600"><a href="00502.html" target="topic">DRV_SPI_Open</a> must have been called to obtain a valid opened device handle.</li>
<li class="Element600"><a href="00523.html" target="topic">DRV_SPI_TransferSetup</a> must have been called if GPIO pin has to be used for chip select or any of the setup parameters has to be changed dynamically.</li>
</ul></div>
</div>
<a name="506172616D6574657273"></a><div class="Element14">
Parameters</div>
<div class="Element11">
<div class="Element10">
<div class="Element312">
<div class="TableDiv">
<table cellspacing="0" class="Table3">
<tr>
<td class="Element300" valign="top" width="35%">
<div class="Element301">
Parameters&nbsp;</div></td><td class="Element304" valign="top" width="65%">
<div class="Element305">
Description&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
handle&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
Handle of the communication channel as returned by the <a href="00502.html" target="topic">DRV_SPI_Open</a> function.<br>&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
*pTransmitData&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
Pointer to the data which has to be transmitted. For 9 to 15bit mode, data should be right aligned in the 16 bit memory location.&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
txSize&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
Number of bytes to be transmitted. Always, size should be given in terms of bytes. For example, if 10 15-bit data are to be transmitted, the transmit size should be 20 bytes.&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
transferHandle&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
Handle which is returned by transfer add function.&nbsp;</div></td></tr></table></div></div>
</div>
</div>
<a name="52657475726E73"></a><div class="Element14">
Returns</div>
<div class="Element11">
<div class="Element10">
<p class="Element10">
None.</p></div>
</div>
<a name="52656D61726B73"></a><div class="Element14">
Remarks</div>
<div class="Element11">
<div class="Element10">

<ul class="Element630">
<li class="Element600">This function can be called from within the SPI Driver Transfer Event Handler that is registered by the client.</li>
<li class="Element600">It should NOT be called in the event handler associated with another SPI driver instance or event handler of any other peripheral.</li>
<li class="Element600">It should not be called directly in any ISR.</li>
</ul></div>
</div>
<a name="4578616D706C65"></a><div class="Element14">
Example</div>
<div class="Element11">
<div class="Element10">
<div class="Element13"><div class="Element12"><pre class="Element12">
MY_APP_OBJ myAppObj;
uint8_t myTxBuffer[MY_TX_BUFFER_SIZE];
<a href="00513.html" target="topic">DRV_SPI_TRANSFER_HANDLE</a> transferHandle;

<i><span style="color: #008000">// mySPIHandle is the handle returned by the DRV_SPI_Open function.</span></i>

DRV_SPI_WriteTransferAdd(mySPIhandle, myTxBuffer, MY_TX_BUFFER_SIZE, &amp;transferHandle);

<strong><span style="color: #000080">if</span></strong>(transferHandle == <a href="00514.html" target="topic">DRV_SPI_TRANSFER_HANDLE_INVALID</a>)
{
    <i><span style="color: #008000">// Error handling here</span></i>
}

<i><span style="color: #008000">// Event is received when the transfer is processed.</span></i></pre></div></div>
</div>
</div>
</div>
<!-- End Page Content -->

<!-- Begin Page Footer -->
<div class="Element95">
<a href="00007.html" target="topic">Driver Libraries Help</a> &gt; <a href="00137.html" target="topic">SPI Driver Library Help</a> &gt; <a href="00138.html" target="topic">Library Interface</a> &gt; c) Transfer Functions &gt; <a href="00528.html" target="topic">DRV_SPI_WriteTransferAdd Function</a></div>
<div class="Element93">
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td width="25%">
<div class="Element3">
MPLAB Harmony Core Help</div>
</td><td width="25%">
<div class="Element4">
<a href="contents.html" target="tocidx">Contents</a> | <a href="00007.html" target="topic">Home</a></div>
</td><td width="25%">
<div class="Element91">
<a href="00504.html" target="topic">Previous</a> | <a href="00138.html" target="topic">Up</a> | <a href="00526.html" target="topic">Next</a></div>
</td><td width="25%">
<div class="Element97">
<a href="mailto:docerrors@microchip.com&subject=MPLAB Harmony Documentation Feedback (Topic ID: DRV_SPI_WriteTransferAdd@DRV_HANDLE@void*@size_t@DRV_SPI_TRANSFER_HANDLE * const Topic Title: DRV_SPI_WriteTransferAdd Function)&body=Thank you for your feedback! Please include a description of your feedback, and indicate whether you are reporting an an error in the documentation or an enhancement.">Documentation Feedback</a><br> <a href="http://support.microchip.com" target="_blank">Microchip Support</a></div>
</td></tr></table></div>

<!-- End Page Footer -->
</div>
</div>

<!-- End Client Area -->
</body></html>